import request from '@/config/axios'

// 业务员 VO
export interface SalespersonVO {
  id: number // 主键id
  name: string // 姓名
  mobile: string // 账号
  password: string // 密码
  promoteCode: string // 推广码
  status: number // 状态
  outletCount?: number // 推广数量
}

// 门店信息 VO
export interface OutletVO {
  id: number // 门店ID
  name: string // 门店名称
  areaId: number // 地址ID
  detailAddress: string // 详细地址
  coverImage: string // 店铺封面图
  headImage: string // 门店门头照
  owner: string // 门店负责人
  mobile: string // 手机号
  wxNumber: string // 微信号
  email: string // 邮箱
  salespersonId: number // 业务员ID
  promoteTime: Date // 推广时间
  expireTime: Date // 过期时间
  archive: number // 是否已存档 0-没有 1-有
  createTime: Date // 创建时间
}

// 业务员 API
export const SalespersonApi = {
  // 查询业务员分页
  getSalespersonPage: async (params: any) => {
    return await request.get({ url: `/system/salesperson/page`, params })
  },

  // 查询业务员详情
  getSalesperson: async (id: number) => {
    return await request.get({ url: `/system/salesperson/get?id=` + id })
  },

  // 新增业务员
  createSalesperson: async (data: SalespersonVO) => {
    return await request.post({ url: `/system/salesperson/create`, data })
  },

  // 修改业务员
  updateSalesperson: async (data: SalespersonVO) => {
    return await request.put({ url: `/system/salesperson/update`, data })
  },

  // 重置业务员密码
  updateSalespersonPassword: async (id: number, password: string) => {
    return await request.put({ url: `/system/salesperson/update-password`, data: { id, password } })
  },

  // 删除业务员
  deleteSalesperson: async (id: number) => {
    return await request.delete({ url: `/system/salesperson/delete?id=` + id })
  },

  // 导出业务员 Excel
  exportSalesperson: async (params) => {
    return await request.download({ url: `/system/salesperson/export-excel`, params })
  },

  // 查询业务员推广的门店列表
  getSalespersonOutlets: async (params: any) => {
    return await request.get({ url: `/system/salesperson/outlets`, params })
  }
}
